// 商品详情页仓库
// 导入验证 封装游客身份模块uuid--->生成一个随机字符串（不能再变了）
import { getUUID } from '@/utils/uuid_token'
import { reqGoodsInfo, reqAddOrUpdateShopCart } from '@/api'
const state = {
  // 数据为一个对象
  goodInfo: {},
  // 封装游客身份模块uuid--->生成一个随机字符串（不能z再变了）
  uuid_token: getUUID()
}
const mutations = {
  GETGOODINFO (state, goodInfo) {
    state.goodInfo = goodInfo
  }
}
const actions = {
  async getGoodInfo ({ commit }, skuId) {
    const result = await reqGoodsInfo(skuId)
    if (result.code === 200) {
      commit('GETGOODINFO', result.data)
    }
  },
  async reqaddOrUpdateShopCart ({ commit }, { skuId, skuNum }) {
    // 不需要在三连环（仓库存储数据了）
    // 注意:async函数执行返回的结果一定是一个promise【要么成功，要么失败】
    const result = await reqAddOrUpdateShopCart(skuId, skuNum)
    console.log(result)
    if (result.code === 200) {
      // 返回的是成功的标记
      return 'ok'
    } else {
      // 返回的是失败的标记
      return Promise.reject(new Error('faile'))
    }
  }
}
// 路径导航简化的数据
const getters = {
  categoryView (state) {
    // state.goodInfo 初始状态是一个空对象 空对象中 categoryView 的是一个 undeifined
    return state.goodInfo.categoryView || {}
  },
  // 简化产品信息的数据
  skuInfo (state) {
    return state.goodInfo.skuInfo || {}
  },
  // 产品售卖属性的简化
  spuSaleAttrList (state) {
    return state.goodInfo.spuSaleAttrList || []
  }
}
export default {
  state,
  mutations,
  actions,
  getters
}
